home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 5.3 KB | 177 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWTrackr.h
- // Release Version: $ ODF 1 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
- //
- // Three Classes:
- // FW_CTracker
- // FW_CThreeStepTracker
- // FW_COneStepTracker
- //
- //
-
- #ifndef FWTRACKR_H
- #define FWTRACKR_H
-
- #ifndef FWPOINT_H
- #include "FWPoint.h"
- #endif
-
- #ifndef FWEXCLIB_H
- #include "FWExcLib.h"
- #endif
-
- //========================================================================================
- // Forward Declaration
- //========================================================================================
-
- class ODFacet;
- class ODSession;
- class FW_CView;
- class FW_CMouseEvent;
- class FW_CPrivBaseScroller;
-
- //========================================================================================
- // class FW_CBaseTracker
- //========================================================================================
-
- // [JEL] These were declared as autodestruct objects, but they don't seem to require it???
-
- class FW_CBaseTracker
- {
- //----------------------------------------------------------------------------------------
- // Initialization/Destruction
- //
- public:
- FW_CBaseTracker(Environment* ev, FW_CView* view, ODFacet* facet);
- virtual ~FW_CBaseTracker();
-
- //----------------------------------------------------------------------------------------
- // New API
- //
- public:
- // ----- Tracking -----
- virtual FW_CPoint BeginTracking(Environment* ev,
- const FW_CPoint& anchorPoint) = 0;
- virtual FW_CPoint ContinueTracking(Environment* ev,
- const FW_CPoint& anchorPoint,
- const FW_CPoint& previousPoint,
- const FW_CPoint& currentPoint) = 0;
- virtual FW_Boolean EndTracking(Environment* ev,
- const FW_CPoint& anchorPoint,
- const FW_CPoint& lastPoint) = 0;
-
- ODFacet* GetFacet(Environment*) const
- {return fFacet;}
- FW_CView* GetView(Environment*) const
- {return fView;}
-
- //----------------------------------------------------------------------------------------
- // Data Members
- //
- protected:
- FW_CPoint fAnchorPoint;
- FW_CPoint fPreviousPoint;
-
- private:
- ODFacet* fFacet;
- FW_CView* fView;
- };
-
- //========================================================================================
- // class FW_CDropTracker
- //========================================================================================
-
- class FW_CDropTracker : public FW_CBaseTracker
- {
- //----------------------------------------------------------------------------------------
- // Initialization/Destruction
- //
- public:
- FW_CDropTracker(Environment* ev, FW_CView* view, ODFacet* facet);
- virtual ~FW_CDropTracker();
-
- //----------------------------------------------------------------------------------------
- // New API
- //
- public:
- // ----- Dispatch tracking -----
- void HandleBeginTracking(Environment *ev,
- const FW_CPoint& where,
- unsigned long dragAttributes);
- void HandleContinueTracking(Environment* ev,
- const FW_CPoint& where);
- FW_Boolean HandleEndTracking(Environment* ev,
- const FW_CPoint& where);
-
- // ----- Tracking -----
- virtual FW_CPoint BeginTracking(Environment* ev,
- const FW_CPoint& anchorPoint);
- virtual FW_CPoint ContinueTracking(Environment* ev,
- const FW_CPoint& anchorPoint,
- const FW_CPoint& previousPoint,
- const FW_CPoint& currentPoint);
- virtual FW_Boolean EndTracking(Environment* ev,
- const FW_CPoint& anchorPoint,
- const FW_CPoint& lastPoint);
-
- // ----- Drag Hilite -----
- virtual void ShowDragHilite(Environment* ev, ODShape* hiliteShape, FW_Boolean showInside);
- virtual void HideDragHilite(Environment* ev);
-
- // ----- Drag Attributes -----
- FW_Boolean IsInSourceFrame(Environment*) const
- {return (fDragAttributes & kODDragIsInSourceFrame);}
- unsigned long GetDragAttributes(Environment* ev) const;
-
- //----------------------------------------------------------------------------------------
- // Internal API
- //
- protected:
- void PrivShowDefaultHilite(Environment* ev);
-
- //----------------------------------------------------------------------------------------
- // Data Members
- //
- private:
- unsigned long fDragAttributes;
- ODSession* fSession;
- FW_CPrivBaseScroller* fScroller;
-
- #ifdef FW_BUILD_MAC
- FW_Boolean fSavedHiliteState; // Used during auto-scroll
- FW_Boolean fMacHiliteOn;
- #endif
- };
-
- //========================================================================================
- // class FW_CTracker
- //========================================================================================
-
- class FW_CTracker : public FW_CBaseTracker
- {
- //----------------------------------------------------------------------------------------
- // Initialization/Destruction
- //
- public:
- FW_CTracker(Environment* ev, FW_CView* view, ODFacet* facet, FW_Boolean waitMouseMoved = TRUE);
- virtual ~FW_CTracker();
-
- //----------------------------------------------------------------------------------------
- // New API
- //
- public:
- virtual FW_Boolean Track(Environment* ev, const FW_CMouseEvent& theMouseEvent);
-
- //----------------------------------------------------------------------------------------
- // Data Members
- //
- private:
- FW_Boolean fWaitMouseMoved;
- };
-
- #endif